One or more embodiments relate to the operations of a nonvolatile memory device and, more particularly, to a method of programming a nonvolatile memory device, which is capable of solving a problem in that verification results are erroneously recognized because of errors of a page buffer.
A nonvolatile memory device has the advantages of random access memory (RAM), which enables the writing and erasure of data, and read only memory (ROM), which retains data even without the supply of power. Thus, nonvolatile memory devices have recently been widely used for the storage media of electronic devices, such as digital cameras, personal digital assistant (PDAs), and MP3 players.
The conventional nonvolatile memory device includes a memory cell array, a row decoder, a page buffer unit, etc. The memory cell array includes a plurality of word lines extending in rows, a plurality of bit lines extending in columns, and a plurality of cell strings corresponding to the respective bit lines.
In the case where a fail memory cell is detected, a repair method of replacing the fail memory cell with a redundant memory cell is used in order to improve the yield of nonvolatile memory devices.
When an address signal is received, the redundancy sense circuit of the nonvolatile memory device detects the address signal, and outputs a repair control signal indicative of whether a repair operation has to be performed. The redundancy sense circuit stores repair address information programmed by a fuse element.
The repair operation is performed on a column basis, and a fail column is replaced with a redundancy column. The data of a page buffer coupled to the fail column is set such that the page buffer is in a pass state when a program operation is performed.
FIG. 1 is a flowchart illustrating the program operation of a conventional nonvolatile memory device.
Referring to FIG. 1, a program command and program data are received at steps S101 and S103, respectively. The nonvolatile memory device resets a count value to ‘0’ at step S105, and performs a program operation at step S107 in order to limit the number of times program pulses are applied.
After the program operation is performed, the nonvolatile memory device increases the count value by one at step S109, and performs a program verification operation at step S111. Next, the nonvolatile memory device checks a verification state and a latch in which a result of the program verification operation is stored at step S113. The verification state is a data signal outputted in response to a verification signal of the page buffer.
It is then determined whether the program operation is a pass for all the memory cells at step S115. If, as a result of the determination, the program operation is determined to be a pass for all the memory cells, the nonvolatile memory device sets a program state to ‘pass’ at step S117 and finishes the program operation at step S119.
However, if, as a result of the determination at step S115, the program operation is determined not to be a pass for all the memory cells, the nonvolatile memory device determines whether the count value has reached a maximum critical value MAX at step S121. If, as a result of the determination at step S121, the count value is determined not to have reached the maximum critical value MAX, the nonvolatile memory device returns to step S107 in which a program voltage is raised and the program operation is performed again.
However, if, as a result of the determination at step S121, the count value is determined to have reached the maximum critical value MAX, the nonvolatile memory device sets the state data to ‘fail’ at step S122 and finishes the program operation at step S119.
If data has normally been programmed into a repaired column when the above operation is performed, program pass data is stored in the latch of a page buffer coupled to the repaired column. However, if the page buffer coupled to the fail column does not normally operate, the program pass data is not stored in the page buffer coupled to the fail column.
Accordingly, a problem may arise because, even though a program operation has normally been performed, the program operation is recognized as having not been completed, thereby setting state data to ‘fail’.